Various devices may be connected to an information processing apparatus such as a computer. Software called a device driver is used for access to the device. The device driver may be updated for improving capabilities and correcting faults. Therefore, a method of updating the device driver while reducing influence on a system is considered.
For example, an information processing apparatus that monitors the frequency of input and output requests issued to an old device driver operating before an update, and detects a timing at which an update to a new device driver can be safely performed is suggested. In this suggestion, the information processing apparatus monitors the end of input and output requests that are already received in the old device driver, and sets new input and output requests to a pending state. The old device driver is unloaded, and then, the new device driver is embedded and initialized in an operating system. The pending input and output requests are executed in the new device driver. Then, typical input and output processes are resumed.
In addition, a structure of a device driver that is split into a shell device driver and a physical layer device driver is suggested. The shell device driver provides a system driver interface for connection to an operating system. The physical layer device driver is used for connection to a physical device. In this suggestion, when the physical layer device driver is replaced, the shell device driver retains the current device state of the physical device and hands over the current device state of the physical device to a physical layer device driver after replacement.
As described, in the update of the device driver, access to the device using the new device driver may be started after device access using the current device driver is stopped. In this case, at the timing of switching, a time period is taken for the initialization process for the new device driver, and a time period of inaccessibility to the device is present. When the time period of inaccessibility to the device is extended, there is a possibility of adverse effects such as the occurrence of a timeout in the process of an application or middleware that uses the device.
The related art is disclosed in the following documents: Japanese Laid-open Patent Publication No. 11-203120 and Japanese Laid-open Patent Publication No. 2001-318874.